Skip to content

Update/content with code editing#62

Merged
Charliechen114514 merged 10 commits into
mainfrom
update/content_with_code_editing
Jun 15, 2026
Merged

Update/content with code editing#62
Charliechen114514 merged 10 commits into
mainfrom
update/content_with_code_editing

Conversation

@Charliechen114514

Copy link
Copy Markdown
Member

feat(vol3): 标准库卷·容器部分完整重构 + 在线编译器接入 + code/examples 目录拆分

概述

update/content_with_code_editing 相对 main 的累积变更。核心是把 vol3「标准库深入」卷的容器部分从零散草稿,重构成一套完整、可交互、中英双语同步的教程,并理顺了 code/examples 目录结构和 frontmatter 基础设施。

涉及 717 个文件(+13940 / −11504),8 个 commit。

主要变更

1. vol3 容器部分完整重构(14 篇)

  • 3 篇全新:容器选择指南(决策树 + 复杂度/迭代器失效速查表)、容器适配器(讲透 priority_queue 的堆本质)、新标准容器(flat_map / inplace_vector / mdspan)
  • 11 篇规范化重写(array/vector/string/deque/map/unordered/span/initializer_list/object-size/allocators/char8),全部 GCC 16.1.1 实跑验证、贴真实终端输出
  • 文件名序号对齐 frontmatter order——侧边栏由 sidebar.ts 按文件名数字排序,重命名后导航顺序 = 阅读顺序

2. 在线编译器(OnlineCompilerDemo)

  • vol3 14 篇全部接入可运行 / 看 x86 汇编 / 看 ARM 汇编的在线源码(基于 Compiler Explorer)
  • 组件增强:shiki C++ 语法高亮、源码默认可见 + 左右分栏布局、IntersectionObserver 懒加载
  • 补建原漏掉的 map 源码、重写主题错的 initializer_list 源码、新建 8 个容器演示

3. code/examples 目录重构

  • vol34567(vol3-7 五卷源码混一起)拆成 vol3/vol4/vol5/vol6/vol7,与 vol1/vol2 统一
  • vol3 的 14 个源码重新连续编号 01-14(对应文章 order)

4. 基础设施

  • C++26 frontmatter 支持:validate_frontmatter.py'26',同步 CLAUDE.md / frontmatter 规则(新标准容器篇标 [23, 26])
  • 全仓 reading_time_minutes 补全 + frontmatter 字母序规范化(check_quality --fix)
  • 修 vol3 几处 internal_link 缺 .md 扩展

5. i18n(EN 翻译同步)

  • EN 翻译同步 25 文件(glm-4.6),含 OnlineCompilerDemo 组件英文化
  • EN vol3 index 从旧版升级到 14 篇逻辑结构
  • EN source-path 同步到新的 code/examples/vol3-7 结构

验证(CI 本地全量模拟,全绿)

检查 结果
markdownlint 全仓(排除 index)
validate_frontmatter ✅ All passed
content-quality (check_quality) ✅ 0 issue
build (pnpm build) ✅ SUCCESS,dist 带 code/examples 源码
build-examples ✅ 不受影响(code/examples 无 CMakeLists)

新增/重写源码均 g++ -std=c++20/23/26 实跑编译通过。mdspan 用 m[i, j](多维 operator[],P2128)而非早期 Kokkos 的 m(i, j)——实跑抓出的真 bug。

注意

  • 文件名大批重命名(vol3 14 篇 + code/examples 24 文件),所有内部链接 / source-path / EN source manifest 已同步,grep 确认零残留
  • 新标准容器在线 demo 配 run-compiler=g162 -std=c++26(inplace_vector 是 C++26);若 Godbolt 该 id 不可用,可在组件「编译条件」面板手动切换
  • 全仓 frontmatter 字母序重排(check_quality --fix 副作用),功能无影响

- 桌面左右分栏(源码 | 操作+结果),<912px 自动上下
- 源码进入视口懒加载(IntersectionObserver),减少并发请求
- 编辑源码改为 toggle:再点保存编辑内容并切回只读预览
- 有 ARM 源码时加「源码/ARM 精简源码」tab,看 ARM 汇编自动对照
- 本期纯文本等宽,shiki 语法高亮留作后续
- 只读源码用 shiki/bundle/web runtime 高亮,复用 github-light/dark 双主题
- 动态 import + 单例懒加载,不污染首屏 bundle(shiki 已随 vitepress 安装,无需加依赖)
- 双主题经 html.dark + --shiki-light/dark 变量自动切换,无需刷新
- 高亮异步:未就绪先纯文本 fallback,就绪后替换为着色 HTML
- 编辑态 textarea 保持纯文本(编辑场景不高亮)
- 14 篇 OnlineCompilerDemo 配齐(补 map、重写 initializer、新建 8 个)
- vol34567 拆成 vol3/vol4/vol5/vol6/vol7,vol3 重新连续编号 01-14
- 同步更新所有 sourcePath(含 EN)
- 25 个文件重译(glm-4.6),vol3 14 篇 EN 齐全含 OnlineCompilerDemo
- EN source-path 同步到 code/examples/vol3-7 新结构
- EN vol3 index 升级到 14 篇逻辑顺序
- check_quality --fix 补全 reading_time_minutes + frontmatter 字母序规范化
- 修 vol3 deque/map 的 internal_link 缺 .md(4 处 CN+EN)
- EN 翻译同步 25 文件# Please enter the commit message for your changes. Lines starting
@Charliechen114514 Charliechen114514 merged commit 51ea44a into main Jun 15, 2026
6 checks passed
@Charliechen114514 Charliechen114514 deleted the update/content_with_code_editing branch June 15, 2026 11:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant